package com.marchsoft.common.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author rsw
 */
public class TimeUtils {
    /**
     * 可以方便修改日期格式
     */
    static SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 可以方便修改日期格式
     * 格式 yyyy-MM-dd
     */
    static SimpleDateFormat sd2 = new SimpleDateFormat("yyyy-MM-dd");

    public TimeUtils() throws ParseException {
        // 获取当前时间
        String newTime = sd.format(new Date());
        System.out.println("输出当前时间:" + newTime);

        // 当前时间转换为时间戳
        Date date = sd.parse(newTime);
        // parse() 解析字符串的文本，生成 Date

        // 将时间戳转换为秒
        long unixTimestamp = date.getTime() / 1000;
        System.out.println("输出时间戳:" + unixTimestamp);

        // 时间戳转换为当前时间
        String ntime = sd.format(unixTimestamp * 1000);

        // 输出当前时间
        System.out.println("输出当前时间[时间戳转换]:" + ntime);
    }

    /**
     * 获取当前时间方法
     */
    public static String getNewTime() {
        // 获取当前时间
        return sd.format(new Date());
    }

    /**
     * 获取当前时间方法通过Date
     *
     * @param date Date类型的时间
     * @return
     */
    public static String getNewTime(Date date) {
        // 获取当前时间
        System.out.println();
        return sd2.format(date);
    }

    /**
     * 获取当前时间戳方法
     */
    public static int getNewStamep() {

        return (int) (System.currentTimeMillis() / 1000);
    }

    /**
     * 将时间转换为时间戳
     */
    public static String dateToStamp(String time) throws ParseException {
        String newTime;
        Date date = sd.parse(time);
        int ts = (int) (date.getTime() / 1000);
        newTime = String.valueOf(ts);
        return newTime;
    }

    /**
     * 将时间戳转换为时间
     */
    public static String stampToDate(String stamep) {
        String newStamep;
        long lt = Long.valueOf(stamep) * 1000;
        Date date = new Date(lt);
        newStamep = sd.format(date);
        return newStamep;
    }

    /**
     * 将MySQL中的TimeStamep类型转换为String
     */
    public static String stampToDate(Object stamep) {
        //将一个 Date 格式化为日期/时间字符串
        return sd.format(stamep);
    }
}
